#pragma once

#include "Material.h"
#include "SideUserObject.h"
#include "RandomInterface.h"
#include "ENOilTankGroupHeatFluxUserObject.h"
#include "SideElement.h"
#include <vector>
using std::vector;

class ENOilTankGroupHeatFluxUserObject;

class ENOilTankGroupHeatFluxMaterial :
		public Material
{
public:
	ENOilTankGroupHeatFluxMaterial(const InputParameters & parameters);
	~ENOilTankGroupHeatFluxMaterial(){};

protected:
  virtual void computeQpProperties();

  const Elem * & _current_side_elem;

  const VariableValue &_temperature;
  const ENOilTankGroupHeatFluxUserObject& _OTuo;
  MaterialProperty<Real> & _oil_tank_group_heat_flux;
  MaterialProperty<Real> & _oil_tank_group_heat_flux_jacobi;
};

template<>
InputParameters validParams<ENOilTankGroupHeatFluxMaterial>();
